Modeling languages may be used as meta-languages to describe and execute underlying processes, such as business processes. For example, process modeling languages allow an enterprise to describe tasks of a process, and to automate performance of those tasks in a desired order to achieve a desired result. For instance, the enterprise may implement a number of business software applications, and process modeling may allow coordination of functionalities of these applications, including communications (e.g., messages) between the applications, to achieve a desired result.
Such modeling languages allow a flow of activities to be graphically captured and executed, thereby enabling resources responsible for the activities to be coordinated efficiently and effectively. The flow of work in a process is captured through routing (e.g., control flow) constructs, which allow the tasks in the process to be arranged into the required execution order through sequencing, choices (e.g., decision points allowing alternative branches), parallelism (e.g., tasks running in different branches which execute concurrently), iteration (e.g., looping in branches) and synchronization (e.g., the coming together of different branches).
During design and execution of process models, it may occur that one or more tasks of a given process model may relate to a knowledge-intensive task which requests or requires significant human involvement for completion. For example, such tasks may require an element of human creativity, such as in authoring a document or presentation. In another example, human knowledge may be required to conduct a collaborative effort (e.g., to have knowledge of which parties to involve within the collaborative effort). In a final example, human knowledge may be required to conduct a useful information search and to evaluate the results thereof.
Conventional process models, as described above, are generally designed to conduct automated control of the assignment and execution of tasks of the process model(s). It is apparent that, by their nature, knowledge-intensive tasks may add an element of difficulty and unpredictability to implementation of process models, because it is difficult to capture and/or automate their execution by different human users. Further, one of the benefits of process models is the ability to construct and use a standardized model which is well-tested and which leverages and incorporates previous executions thereof, so as to increase an efficiency and productivity of an enterprise or other organization over time. In contrast, knowledge-intensive tasks are conventionally performed wholly or partially in isolation by the assigned human users. As a result, work associated with performing (e.g., with identifying an appropriate work process for a given user/situation for) such knowledge-intensive tasks may be unknowingly and/or unnecessarily repeated by different assigned users, thereby leading to decreased efficiency and productivity for the organization as a whole.